const Router = require('koa-router')//使用路由模块
const mongoose = require('mongoose')
let router = new Router()

const fs = require('fs')

//商品详情数据写入数据库集合
router.get('/insertAllGoodsInfo',async(ctx)=>{
    fs.readFile('./data_json/newGoods.json','utf8',(err,data)=>{
        data=JSON.parse(data)
        let saveCount=0
        const good = mongoose.model('good')
        data.map((value,index)=>{
            console.log(value)
            let newGoods = new good(value)
            newGoods.save().then(()=>{
                saveCount++
                console.log('成功'+saveCount)
            }).catch(error=>{
                console.log(MediaStreamErrorEvent)
            })
        })
    })
    ctx.body="开始导入数据"
})
//商品大类数据写入数据库集合
router.get('/insertAllCategory',async(ctx)=>{
       fs.readFile('./data_json/category.json','utf8',(err,data)=>{
              data = JSON.parse(data)
              let category = mongoose.model('category')
              data.RECORDS.map((value,index)=>{
                     let newcategory = new category(value)
                     newcategory.save().then(()=>{
                            console.log('数据存储成功')
                     }).catch(err =>{
                            console.log('数据存储失败')
                     })
              })
       })
       ctx.body = '开始导入数据'
})
//商品小类数据写入数据库
router.get('/insertAllCategorySub',async(ctx)=>{
       fs.readFile('./data_json/category_sub.json','utf8',(err,data)=>{
                data = JSON.parse(data)
                let categorySub = mongoose.model('categorySub')
                data.RECORDS.map((value,index)=>{
                       let newcategorySub = new categorySub(value)
                       newcategorySub.save().then(()=>{
                              console.log('数据存储成功')
                       }).catch(err=>{
                              console.log('数据储存失败')
                       })
                })
       })
       ctx.body = '开始导入数据'
})




//商品详情页接口
router.post('/getDetailGoodsInfo',async(ctx)=>{
       try{
           let goodsId = ctx.request.body.goodsId//从前端传递过来的goodsId保存在koa服务器,通过goodsId,在到数据库进行查找匹配。
           const good = mongoose.model('good')
           let result = await good.findOne({ID:goodsId}).exec()
           //findOne指的是查找指定表的单条数据，返回一个对象
           //result携带着在数据库查找返回回来的数据，将数据在放入koa服务器，前端在通过axios请求拿到数据
           ctx.body={code:200,message:result}
       }catch(error){
              ctx.body = {code:500,message:error}
       }
})
//商品大类数据的接口
router.get('/getCategoryList',async(ctx)=>{
       try{
           const category = mongoose.model('category')
           let result = await category.find().exec()
           //find指的是查找指定表的所有数据，返回的是数组对象
           ctx.body={code:200,message:result}
       }catch(error){
              ctx.body = {code:500,message:error}
       }
})
//商品小类列表头的接口
router.post('/getCategorySubList',async(ctx)=>{
       try{
           let categoryId = ctx.request.body.categoryId//从前端获取大类categoryId保留在koa服务器,通过categoryId在数据进行查找匹配。
           const categorySub = mongoose.model('categorySub')
           let result = await categorySub.find({MALL_CATEGORY_ID:categoryId}).exec()
           ctx.body={code:200,message:result}//把从数据库拿到result数据,让message携带它返回给前端
       }catch(error){
              ctx.body = {code:500,message:error}
       }
})
//商品小类列表商品信息接口
router.post('/getGoodsListByCategorySubID',async(ctx)=>{
       try{
           let categorySubId = ctx.request.body.categorySubId  //子类别ID
           let page = ctx.request.body.page  //当前页数
           let num = 5  //每页显示数量
           let start = (page-1)*num  //开始位置
   
           const goods = mongoose.model('good')
           let result = await goods.find({SUB_ID:categorySubId})
           .skip(start).limit(num).exec()
           ctx.body={code:200,message:result}
       }catch(error){
           ctx.body={code:500,message:error}
       }
       
   })







module.exports = router